package com.example.util;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class RequestContextUtil {

    public static ServletRequestAttributes getRequestAttributes() {
        return (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    }

    /**
     * 获取Request
     * @return
     */
    public static HttpServletRequest getRequest() {
        //TODO:单元测试的时候，还是会得到requestAttributes，不等于null
        ServletRequestAttributes requestAttributes = getRequestAttributes();
        if (requestAttributes != null) {
            return requestAttributes.getRequest();
        } else {
            return null;
        }
    }

    /**
     * 获取Response
     * @return
     */
    public static HttpServletResponse getResponse() {
        //TODO:单元测试的时候，还是会得到requestAttributes，不等于null
        ServletRequestAttributes requestAttributes = getRequestAttributes();
        if (requestAttributes != null) {
            return requestAttributes.getResponse();
        } else {
            return null;
        }
    }

    /**
     * 获取SessionId
     * @return
     */
    public static String getSessionId() {
        //TODO:单元测试的时候，还是会得到requestAttributes，不等于null
        ServletRequestAttributes requestAttributes = getRequestAttributes();
        if (requestAttributes != null) {
            return requestAttributes.getSessionId();
        } else {
            return null;
        }
    }
}
